#ifndef _LO_NETLIST_H_
#define _LO_NETLIST_H_

#include "edaSolution.h"
#include "loDefine.h"

class loNetList: public edaSolution {
public:
  loNetList();
  loNetList( const loNetList &netlist );
  loNetList( const char *blif );
  ~loNetList();

  /*! drived methods */
  void init();
  edaSolution *clone() const;
  double fullEvaluate();
  double partialEvaluate();
  void Serialize( edaBuffer &buf, bool pack );
  void printOn( ostream &os ) const;
  edaSolution & operator = ( const edaSolution &sol );
  virtual bool operator == (const edaSolution &sol) const;

  /*! user methods */
  void setModified( bool status = true );
  void *getNetlist();
  
  setClassID(_USERCLASSID_ + _CLSID_LO_NETLIST_);

private:
  void *netlist_;
  bool modified_;
  double cost_;
};

#endif
